package com.stf.rocketmq.controller;


import com.stf.rocketmq.util.MqUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 单向消息发送
 * @author shangtf
 *
 * */
@RestController
@RequestMapping("/oneWayMq")
@Slf4j
public class OneWayProducerController {

    @Autowired
    private RocketMQTemplate rocketMQTemplate; //注入Mq


    /**
     * 单向消息
     * 特点为只负责发送消息，不等待服务器回应且没有回调函数触发，即只发送请求不等待应答
     * 此方式发送消息的过程耗时非常短，一般在微秒级别
     * 应用场景：适用于某些耗时非常短，但对可靠性要求并不高的场景，例如日志收集
     */
    @RequestMapping("/sendOneWay1")
    public void syncSendOneWay()  {

        rocketMQTemplate.sendOneWay(MqUtil.oneway_topic, "hello world test2 sendOneWayStr");
        log.info("单向消息已发送");

    }
}
